home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Camelot / Camelot 078 (1990-06)(Swedish User Group of Amiga)(SE)(PD)[WB].zip / Camelot 078 (1990-06)(Swedish User Group of Amiga)(SE)(PD)[WB].adf / TrackSalve / TrackSalve / Source / ts.h < prev    next >
C/C++ Source or Header  |  1990-06-17  |  3KB  |  119 lines

  1. /*
  2.  *  Ts.h  -   Copyright 1990 D.W.Reisig
  3.  *
  4.  *   #      date      by    Comment
  5.  *  -- --------- ----- ---------------------
  6.  *   0 29-Oct-89  DWR    Created for Tracksalve
  7.  *   1 10-Apr-90  DWR    TrackSalve 1.3
  8.  *
  9.  */
  10.  
  11. #define exit(i)     XCEXIT(i)
  12.  
  13. #define TSSEMAPHORENAME        "TrackSalve Data Hook"
  14. #define TD_VERSION1_2        33
  15. #define TD_REVISION1_2        127
  16. #define TD_VERSION1_3        34
  17. #define TD_REVISION1_3        1
  18.  
  19. #define PUBCLR            (MEMF_PUBLIC|MEMF_CLEAR)
  20.  
  21. /*  Program return codes  */
  22.  
  23. #define ZERO            0
  24. #define WARN            5
  25. #define ERROR            10
  26. #define FAIL            20
  27.  
  28. /*  Secondary result codes  */
  29.  
  30. #define E_CMDLINE        -41
  31. #define E_ALLOCMEM        -42
  32. #define E_INTUITION        -43
  33. #define E_RTAG            -44
  34. #define E_TD_VERSION        -45
  35. #define E_LOSTPC        -47
  36.  
  37.  
  38. /*--    The findable structure.     We put it in the semaphore list. */
  39.  
  40. struct TSHook{
  41.   struct SignalSemaphore TSH_Semaphore;
  42.   struct TSControl    *TSH_TSControl;
  43.   ULONG             TSH_Version;
  44. };
  45.  
  46. /*--    The UnitData structure contains data of interest for a Trackdisk unit task. */
  47.  
  48. struct TrackSalveBN{
  49.   struct bltnode     TSBN_bltnode;
  50.   UWORD             TSBN_Pad;
  51.   APTR             TSBN_P0;
  52.   APTR             TSBN_P1;
  53.   APTR             TSBN_P2;
  54.   APTR             TSBN_P3;
  55.   APTR             TSBN_Unit;
  56.   UWORD             TSBN_C0;
  57.   UWORD             TSBN_C1;
  58. };
  59.  
  60.  
  61. struct UnitData{
  62.   struct IOExtTD     UD_TDReq;
  63.   struct TSControl    *UD_TSControl;
  64.   char            *UD_ReturnTD;
  65.   APTR             UD_Userdata;
  66.   APTR             UD_CopySect;
  67.   UBYTE             UD_Cmd0;
  68.   UBYTE             UD_Cmd1;
  69.   UWORD             UD_SavedL;
  70.   UWORD             UD_SavedD;
  71.   UWORD             UD_Motor;
  72.   struct TrackSalveBN     UD_BlitNode;
  73. };
  74.  
  75. /*--    The global control structure.  It contains data concerning shared items between all TD-tasks. */
  76.  
  77. struct TSControl{
  78.   struct TSHook        *TSC_TSHook;
  79.   struct UnitData    *TSC_UnitData[NUMUNITS];
  80.   struct UnitData     TSC_UDAlloc[NUMUNITS];
  81.   struct Resident    *TSC_TDTag;
  82.   ULONG             TSC_TDCodeSize;
  83.   struct Resident    *TSC_TSTag;
  84.   char            *TSC_TSCode;
  85.   ULONG             TSC_TSCodeSize;
  86.   char            *TSC_Buffer;
  87.   UBYTE             TSC_InUse;
  88.   UBYTE             TSC_Salve;
  89.   UBYTE             TSC_Verify;
  90.   UBYTE             TSC_AvailUnits;
  91.   struct SignalSemaphore TSC_OwnBuffer;
  92.   struct Library    *TSC_IntuBase;
  93.   ULONG             TSC_Size;
  94. };
  95.  
  96. /*  Bits of the UD_Command, UD_PreCmd and UNIT_pad */
  97.  
  98. #define B_VERIFY0        0
  99. #define B_VERIFY1        1
  100. #define B_READONLY        2
  101. #define B_NOCLICK        3
  102. #define B_SALVE            4
  103. #define B_UPDATE        5
  104.  
  105. #define B_RAM            6
  106. #define B_TERM            7
  107.  
  108. #define F_READONLY        (1<<B_READONLY)
  109. #define F_NOCLICK        (1<<B_NOCLICK)
  110. #define F_SALVE            (1<<B_SALVE)
  111. #define F_VERIFY0        (1<<B_VERIFY0)
  112. #define F_VERIFY1        (1<<B_VERIFY1)
  113. #define F_UPDATE         (1<<B_UPDATE)
  114.  
  115. #define F_RAM            (1<<B_RAM)
  116. #define F_TERM            (1<<B_TERM)
  117.  
  118. #define FUNCTIONS        (F_RAM+F_VERIFY1+F_VERIFY0+F_SALVE+F_NOCLICK+F_READONLY+F_UPDATE)
  119.